﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

//This Class specific System namespaces
using System.Runtime.Serialization;

//This Class Specific IvyFramework namespaces
using Ivy.Common.Framework.Base;

namespace Ivy.ContentManagement.Entity
{
    [Serializable]
    [DataContract]
    public class ContentSummary
    {

        #region  Variable & constant
        // All constants and local variable should be declared here
        // TRY NOT TO CREATE PUBLIC VARIABLES INSTEAD USE PROPERTIES FOR THAT PURPOSE.
        // Variable naming convention :- 
        // The naming should be self explanatory, make it long to explain the purpose 
        // and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // Naming convention for all local variable should start with underscore "_"
        // Naming convention for all local constant should start with "_The"
        // Example :    string _CustomerCode = string.Empty;
        // Example :    const string _TheDefaultSmtpServer = "DefaultSmtpServer";
        // ==================== START YOUR CODE FROM NEXT LINE ========================
        Int32? _ContentKey = null; 
		string _ContentCode = string.Empty; 
		string _ContentName = string.Empty;
		Int32? _ContentTypeKey=null;
		string _ContentTypeCode=string.Empty;
		string _ContentTypeName=string.Empty;
		Int32? _ContentStatus =null;
		DateTime? _ContentPublicationStartDate = null; 
		string _ContentHtmlData = string.Empty;
		string _ContentMetaTagKeyword =string.Empty;
		string _ContentMetaTagDescription = string.Empty;
		Int32? _ContentTotalLikes = null;
		Int32? _ContentTotalViews = null;
		DateTime? _Sys_DateOfCreation = null;
		string _Sys_CreatedByID = string.Empty;

		string _PersonFirstName = string.Empty;
		string _PersonLastName = string.Empty;

		byte[] _PersonProfileImageData = null; 
		string _PersonImageType = string.Empty;
		string _PersonImageFileName = string.Empty;

		Int32? _ContentImageKey = null;
		byte[] _ContentImageData = null;
		string _ContentImageType = string.Empty;
		string _ContentImageFileName = string.Empty;

        Int32? _AverageRating = null;
        Int32? _TotalReviews = null;

		Int32? _Sys_DeleteType = null;
		bool _Sys_IsDeleted = false;
        Int32? _Sys_OrganizationID = null;

 
        #endregion  Variable & constant

        #region Constructor & Destructor
        // Cut and Copy the default constructor for the class inside this region.
        // Generally not required in UI layer.
        // Example:
        // public SampleClassTemplate()
        // {

        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================


     

        #endregion Constructor & Destructor

        #region Properties
        // Any value/variable that needs to be exposed outside the class we need to create a property.
        // Avoid creating public variables rather create public properties.
        // UI layer may have public custom properties. these are very handy for User Controls.
        // Property naming convention :- Properties will be exposed outside the class, 
        // the naming should be self explanatory, make it long to explain the purpose 
        // and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // All properties should have a corresponding local variable 
        // and the property name and local variable name should match.
        // Example :
        // public string CustomerCode
        // {
        //     get
        //     {
        //         return _CustomerCode;
        //     }
        //     set
        //     {
        //         _CustomerCode = value;
        //     }
        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================


        [DataMember]
        public Int32? ContentKey
        {
            get
            {
                return _ContentKey;
            }
            set
            {
                _ContentKey = value;
            }

        }

        [DataMember]
        public string ContentCode
        {
            get
            {
                return _ContentCode;
            }
            set
            {
                _ContentCode = value;
            }
        }
        [DataMember]
        public string ContentName
        {
            get
            {
                return _ContentName;
            }
            set
            {
                _ContentName = value;
            }
        }

        [DataMember]
        public Int32? ContentTypeKey
        {
            get
            {
                return _ContentTypeKey;
            }
            set
            {
                _ContentTypeKey = value;
            }
        }

        [DataMember]
        public string ContentTypeCode
        {
            get
            {
                return _ContentTypeCode;
            }
            set
            {
                _ContentTypeCode = value;
            }
        }

        [DataMember]
        public string ContentTypeName
        {
            get
            {
                return _ContentTypeName;
            }
            set
            {
                _ContentTypeName = value;
            }
        }

        [DataMember]
        public Int32? ContentStatus
        {
            get
            {
                return _ContentStatus;
            }
            set
            {
                _ContentStatus = value;
            }
        }

        [DataMember]
        public DateTime? ContentPublicationStartDate
        {
            get
            {
                return _ContentPublicationStartDate;
            }
            set
            {
                _ContentPublicationStartDate = value;
            }
        }

        [DataMember]
        public string ContentHtmlData
        {
            get
            {
                return _ContentHtmlData;
            }
            set
            {
                _ContentHtmlData = value;
            }
        }

        [DataMember]
        public string ContentMetaTagKeyword
        {
            get
            {
                return _ContentMetaTagKeyword;
            }
            set
            {
                _ContentMetaTagKeyword = value;
            }
        }

        [DataMember]
        public string ContentMetaTagDescription
        {
            get
            {
                return _ContentMetaTagDescription;
            }
            set
            {
                _ContentMetaTagDescription = value;
            }
        }

        [DataMember]
        public Int32? ContentTotalLikes
        {
            get
            {
                return _ContentTotalLikes;
            }
            set
            {
                _ContentTotalLikes = value;
            }
        }

        [DataMember]
        public Int32? ContentTotalViews
        {
            get
            {
                return _ContentTotalViews;
            }
            set
            {
                _ContentTotalViews = value;
            }
        }

        [DataMember]
        public DateTime? Sys_DateOfCreation
        {
            get
            {
                return _Sys_DateOfCreation;
            }
            set
            {
                _Sys_DateOfCreation = value;
            }
        }

        [DataMember]
        public string Sys_CreatedById
        {
            get
            {
                return _Sys_CreatedByID;
            }
            set
            {
                _Sys_CreatedByID = value;
            }
        }

        [DataMember]
        public string PersonFirstName
        {
            get
            {
                return _PersonFirstName;
            }
            set
            {
                _PersonFirstName = value;
            }
        }

        [DataMember]
        public string PersonLastName
        {
            get
            {
                return _PersonLastName;
            }
            set
            {
                _PersonLastName = value;
            }
        }

        [DataMember]
        public byte[] PersonProfileImageData
        {
            get
            {
                return _PersonProfileImageData;
            }
            set
            {
                _PersonProfileImageData = value;
            }
        }

        [DataMember]
        public string PersonImageType
        {
            get
            {
                return _PersonImageType;
            }
            set
            {
                _PersonImageType = value;
            }
        }

        [DataMember]
        public string PersonImageFileName
        {
            get
            {
                return _PersonImageFileName;
            }
            set
            {
                _PersonImageFileName = value;
            }
        }

        [DataMember]
        public Int32? ContentImageKey
        {
            get
            {
                return _ContentImageKey;
            }
            set
            {
                _ContentImageKey = value;
            }
        }

        [DataMember]
        public byte[] ContentImageData
        {
            get
            {
                return _ContentImageData;
            }
            set
            {
                _ContentImageData = value;
            }
        }

        [DataMember]
        public string ContentImageType
        {
            get
            {
                return _ContentImageType;
            }
            set
            {
                _ContentImageType = value;
            }
        }

        [DataMember]
        public string ContentImageFileName
        {
            get
            {
                return _ContentImageFileName;
            }
            set
            {
                _ContentImageFileName = value;
            }
        }

        [DataMember]
        public Int32? AverageRating
        {
            get
            {
                return _AverageRating;
            }
            set
            {
                _AverageRating = value;
            }
        }

        [DataMember]
        public Int32? TotalReviews
        {
            get
            {
                return _TotalReviews;
            }
            set
            {
                _TotalReviews = value;
            }
        }

        [DataMember]
        public Int32? Sys_DeleteType
        {
            get
            {
                return _Sys_DeleteType;
            }
            set
            {
                _Sys_DeleteType = value;
            }
        }

        [DataMember]
        public bool Sys_IsDeleted
        {
            get
            {
                return _Sys_IsDeleted;
            }
            set
            {
                _Sys_IsDeleted = value;
            }
        }

        [DataMember]
        public Int32? Sys_OrganizationId
        {
            get
            {
                return _Sys_OrganizationID;
            }
            set
            {
                _Sys_OrganizationID = value;
            }
        }
        #endregion Properties

        #region Events
        // Generally UI layer will have public events.
        // Cut and Copy the default generated events for the class inside this region.
        // ==================== START YOUR CODE FROM NEXT LINE ========================


        #endregion Events

        #region Public Methods
        // Any method that needs to be exposed outside the class will be created inside this region.
        // Public Method naming convention :- Public Method will be exposed outside the class, 
        // The input and output parameters are also going to be exposed outside the class
        // the naming should be self explanatory, make it long to explain the purpose 
        // and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // Example :
        // public bool RegisterNewCustomer(Customer Customer)
        // {
        //     bool IsCustomerDataSaved = false;
        //     //TO DO logic to save data
        //     IsCustomerDataSaved = InsertCustomerDataUsingDao(Customer);
        //     return IsCustomerDataSaved;
        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================


        #endregion Public Methods

        #region Private Methods
        // All local class level methods will be inside this region. Mostly these are helper methods.
        // Private Method naming convention :- The naming should be self explanatory, 
        // make it long to explain the purpose and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // Input parameter will have a "p" as prefix. 
        // This will help the parameter variable that the value is originated outside this private method.
        // Example :
        // public bool InsertCustomerDataUsingDao(Customer pCustomer)
        // {
        //     bool IsCustomerDataInsertedSuccessfully = false;
        //     //TO DO logic to save data
        //     //....
        //     //....
        //     return IsCustomerDataInsertedSuccessfully;
        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================


        #endregion Private Methods


    }
}
